<?php



/**

 * ECSHOP 动态内容函数库

 * ============================================================================

 * 版权所有 2005-2010 上海商派网络科技有限公司，并保留所有权利。

 * 网站地址: http://www.ecshop.com；

 * ----------------------------------------------------------------------------

 * 这不是一个自由软件！您只能在不用于商业目的的前提下对程序代码进行修改和

 * 使用；不允许对程序代码以任何形式任何目的的再发布。

 * ============================================================================

 * $Author: liuhui $

 * $Id: lib_insert.php 17063 2010-03-25 06:35:46Z liuhui $

*/



if (!defined('IN_ECS'))

{

    die('Hacking attempt');

}



/**

 * 获得查询次数以及查询时间

 *

 * @access  public

 * @return  string

 */

function insert_query_info()

{

    if ($GLOBALS['db']->queryTime == '')

    {

        $query_time = 0;

    }

    else

    {

        if (PHP_VERSION >= '5.0.0')

        {

            $query_time = number_format(microtime(true) - $GLOBALS['db']->queryTime, 6);

        }

        else

        {

            list($now_usec, $now_sec)     = explode(' ', microtime());

            list($start_usec, $start_sec) = explode(' ', $GLOBALS['db']->queryTime);

            $query_time = number_format(($now_sec - $start_sec) + ($now_usec - $start_usec), 6);

        }

    }



    /* 内存占用情况 */

    if ($GLOBALS['_LANG']['memory_info'] && function_exists('memory_get_usage'))

    {

        $memory_usage = sprintf($GLOBALS['_LANG']['memory_info'], memory_get_usage() / 1048576);

    }

    else

    {

        $memory_usage = '';

    }



    /* 是否启用了 gzip */

    $gzip_enabled = gzip_enabled() ? $GLOBALS['_LANG']['gzip_enabled'] : $GLOBALS['_LANG']['gzip_disabled'];



    $online_count = $GLOBALS['db']->getOne("SELECT COUNT(*) FROM " . $GLOBALS['ecs']->table('sessions'));



    /* 加入触发cron代码 */

    $cron_method = empty($GLOBALS['_CFG']['cron_method']) ? '<img src="api/cron.php?t=' . gmtime() . '" alt="" style="width:0px;height:0px;" />' : '';



    return sprintf($GLOBALS['_LANG']['query_info'], $GLOBALS['db']->queryCount, $query_time, $online_count) . $gzip_enabled . $memory_usage . $cron_method;

}



/**

 * 调用浏览历史

 *

 * @access  public

 * @return  string

 */

function insert_history()

{

    $str = '';

    if (!empty($_COOKIE['ECS']['history']))

    {

        $where = db_create_in($_COOKIE['ECS']['history'], 'goods_id');

        $sql   = 'SELECT goods_id, goods_name, goods_thumb, shop_price FROM ' . $GLOBALS['ecs']->table('goods') .

                " WHERE $where AND is_on_sale = 1 AND is_alone_sale = 1 AND is_delete = 0";

        $query = $GLOBALS['db']->query($sql);

        $res = array();

        while ($row = $GLOBALS['db']->fetch_array($query))

        {

            $goods['goods_id'] = $row['goods_id'];

            $goods['goods_name'] = $row['goods_name'];

            $goods['short_name'] = $GLOBALS['_CFG']['goods_name_length'] > 0 ? sub_str($row['goods_name'], $GLOBALS['_CFG']['goods_name_length']) : $row['goods_name'];

            $goods['goods_thumb'] = get_image_path($row['goods_id'], $row['goods_thumb'], true);

            $goods['shop_price'] = price_format($row['shop_price']);

            $goods['url'] = build_uri('goods', array('gid'=>$row['goods_id']), $row['goods_name']);

            $str.='<ul class="clearfix"><li class="goodsimg"><a href="'.$goods['url'].'" target="_blank"><img src="'.$goods['goods_thumb'].'" alt="'.$goods['goods_name'].'" class="B_blue" /></a></li><li><a href="'.$goods['url'].'" target="_blank" title="'.$goods['goods_name'].'">'.$goods['short_name'].'</a><br />'.$GLOBALS['_LANG']['shop_price'].'<font class="f1">'.$goods['shop_price'].'</font><br /></li></ul>';

        }

        $str .= '<ul id="clear_history"><a onclick="clear_history()">' . $GLOBALS['_LANG']['clear_history'] . '</a></ul>';

    }

    return $str;

}



/**

 * 调用购物车信息

 *

 * @access  public

 * @return  string

 */

function insert_cart_info()

{

    $sql = 'SELECT SUM(goods_number) AS number, SUM(goods_price * goods_number) AS amount' .

           ' FROM ' . $GLOBALS['ecs']->table('cart') .

           " WHERE session_id = '" . SESS_ID . "' AND rec_type = '" . CART_GENERAL_GOODS . "'";

    $row = $GLOBALS['db']->GetRow($sql);



    if ($row)

    {

        $number = intval($row['number']);

        $amount = floatval($row['amount']);

    }

    else

    {

        $number = 0;

        $amount = 0;

    }



    $str = sprintf($GLOBALS['_LANG']['cart_info'], $number, price_format($amount, false));



    return '<a href="flow.php" title="' . $GLOBALS['_LANG']['view_cart'] . '">' . $str . '</a>';

}



/**

 * 调用指定的广告位的广告

 *

 * @access  public

 * @param   integer $id     广告位ID

 * @param   integer $num    广告数量

 * @return  string

 */

function insert_ads($arr)

{

    static $static_res = NULL;



    $time = gmtime();

    if (!empty($arr['num']) && $arr['num'] != 1)

    {

        $sql  = 'SELECT a.ad_id, a.position_id, a.media_type, a.ad_link, a.ad_code, a.ad_name, p.ad_width, ' .

                    'p.ad_height, p.position_style, RAND() AS rnd ' .

                'FROM ' . $GLOBALS['ecs']->table('ad') . ' AS a '.

                'LEFT JOIN ' . $GLOBALS['ecs']->table('ad_position') . ' AS p ON a.position_id = p.position_id ' .

                "WHERE enabled = 1 AND start_time <= '" . $time . "' AND end_time >= '" . $time . "' ".

                    "AND a.position_id = '" . $arr['id'] . "' " .

                'ORDER BY rnd LIMIT ' . $arr['num'];

        $res = $GLOBALS['db']->GetAll($sql);

    }

    else

    {

        if ($static_res[$arr['id']] === NULL)

        {

            $sql  = 'SELECT a.ad_id, a.position_id, a.media_type, a.ad_link, a.ad_code, a.ad_name, p.ad_width, '.

                        'p.ad_height, p.position_style, RAND() AS rnd ' .

                    'FROM ' . $GLOBALS['ecs']->table('ad') . ' AS a '.

                    'LEFT JOIN ' . $GLOBALS['ecs']->table('ad_position') . ' AS p ON a.position_id = p.position_id ' .

                    "WHERE enabled = 1 AND a.position_id = '" . $arr['id'] .

                        "' AND start_time <= '" . $time . "' AND end_time >= '" . $time . "' " .

                    'ORDER BY rnd LIMIT 1';

            $static_res[$arr['id']] = $GLOBALS['db']->GetAll($sql);

        }

        $res = $static_res[$arr['id']];

    }

    $ads = array();

    $position_style = '';



    foreach ($res AS $row)

    {

        if ($row['position_id'] != $arr['id'])

        {

            continue;

        }

        $position_style = $row['position_style'];

        switch ($row['media_type'])

        {

            case 0: // 图片广告

                $src = (strpos($row['ad_code'], 'http://') === false && strpos($row['ad_code'], 'https://') === false) ?

                        DATA_DIR . "/afficheimg/$row[ad_code]" : $row['ad_code'];

                $ads[] = "<a href='affiche.php?ad_id=$row[ad_id]&amp;uri=" .urlencode($row["ad_link"]). "'

                target='_blank'><img src='$src' width='" .$row['ad_width']. "' height='$row[ad_height]'

                border='0' /></a>";

                break;

            case 1: // Flash

                $src = (strpos($row['ad_code'], 'http://') === false && strpos($row['ad_code'], 'https://') === false) ?

                        DATA_DIR . "/afficheimg/$row[ad_code]" : $row['ad_code'];

                $ads[] = "<object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" " .

                         "codebase=\"http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0\"  " .

                           "width='$row[ad_width]' height='$row[ad_height]'>

                           <param name='movie' value='$src'>

                           <param name='quality' value='high'>

                           <embed src='$src' quality='high'

                           pluginspage='http://www.macromedia.com/go/getflashplayer'

                           type='application/x-shockwave-flash' width='$row[ad_width]'

                           height='$row[ad_height]'></embed>

                         </object>";

                break;

            case 2: // CODE

                $ads[] = $row['ad_code'];

                break;

            case 3: // TEXT

                $ads[] = "<a href='affiche.php?ad_id=$row[ad_id]&amp;uri=" .urlencode($row["ad_link"]). "'

                target='_blank'>" .htmlspecialchars($row['ad_code']). '</a>';

                break;

        }

    }

    $position_style = 'str:' . $position_style;



    $need_cache = $GLOBALS['smarty']->caching;

    $GLOBALS['smarty']->caching = false;



    $GLOBALS['smarty']->assign('ads', $ads);

    $val = $GLOBALS['smarty']->fetch($position_style);



    $GLOBALS['smarty']->caching = $need_cache;



    return $val;

}



/**

 * 调用会员信息

 *

 * @access  public

 * @return  string

 */

function insert_member_info()

{

    $need_cache = $GLOBALS['smarty']->caching;

    $GLOBALS['smarty']->caching = false;



    if ($_SESSION['user_id'] > 0)

    {

        $GLOBALS['smarty']->assign('user_info', get_user_info());

    }

    else

    {

        if (!empty($_COOKIE['ECS']['username']))

        {

            $GLOBALS['smarty']->assign('ecs_username', stripslashes($_COOKIE['ECS']['username']));

        }

        $captcha = intval($GLOBALS['_CFG']['captcha']);

        if (($captcha & CAPTCHA_LOGIN) && (!($captcha & CAPTCHA_LOGIN_FAIL) || (($captcha & CAPTCHA_LOGIN_FAIL) && $_SESSION['login_fail'] > 2)) && gd_version() > 0)

        {

            $GLOBALS['smarty']->assign('enabled_captcha', 1);

            $GLOBALS['smarty']->assign('rand', mt_rand());

        }

    }

    $output = $GLOBALS['smarty']->fetch('library/member_info.lbi');



    $GLOBALS['smarty']->caching = $need_cache;



    return $output;

}



/**

 * 调用评论信息

 *

 * @access  public

 * @return  string

 */

function insert_comments($arr)

{

    $need_cache = $GLOBALS['smarty']->caching;

    $need_compile = $GLOBALS['smarty']->force_compile;



    $GLOBALS['smarty']->caching = false;

    $GLOBALS['smarty']->force_compile = true;



    /* 验证码相关设置 */

    if ((intval($GLOBALS['_CFG']['captcha']) & CAPTCHA_COMMENT) && gd_version() > 0)

    {

        $GLOBALS['smarty']->assign('enabled_captcha', 1);

        $GLOBALS['smarty']->assign('rand', mt_rand());

    }

    $GLOBALS['smarty']->assign('username',     stripslashes($_SESSION['user_name']));

    $GLOBALS['smarty']->assign('email',        $_SESSION['email']);

    $GLOBALS['smarty']->assign('comment_type', $arr['type']);

    $GLOBALS['smarty']->assign('id',           $arr['id']);

    $cmt = assign_comment($arr['id'],          $arr['type']);

    $GLOBALS['smarty']->assign('comments',     $cmt['comments']);

    $GLOBALS['smarty']->assign('pager',        $cmt['pager']);





    $val = $GLOBALS['smarty']->fetch('library/comments_list.lbi');



    $GLOBALS['smarty']->caching = $need_cache;

    $GLOBALS['smarty']->force_compile = $need_compile;



    return $val;

}





/**

 * 调用商品购买记录

 *

 * @access  public

 * @return  string

 */

function insert_bought_notes($arr)

{

    $need_cache = $GLOBALS['smarty']->caching;

    $need_compile = $GLOBALS['smarty']->force_compile;



    $GLOBALS['smarty']->caching = false;

    $GLOBALS['smarty']->force_compile = true;



    /* 商品购买记录 */

    $sql = 'SELECT u.user_name, og.goods_number, oi.add_time, IF(oi.order_status IN (2, 3, 4), 0, 1) AS order_status ' .

           'FROM ' . $GLOBALS['ecs']->table('order_info') . ' AS oi LEFT JOIN ' . $GLOBALS['ecs']->table('users') . ' AS u ON oi.user_id = u.user_id, ' . $GLOBALS['ecs']->table('order_goods') . ' AS og ' .

           'WHERE oi.order_id = og.order_id AND ' . time() . ' - oi.add_time < 2592000 AND og.goods_id = ' . $arr['id'] . ' ORDER BY oi.add_time DESC LIMIT 5';

    $bought_notes = $GLOBALS['db']->getAll($sql);



    foreach ($bought_notes as $key => $val)

    {

        $bought_notes[$key]['add_time'] = local_date("Y-m-d G:i:s", $val['add_time']);

    }



    $sql = 'SELECT count(*) ' .

           'FROM ' . $GLOBALS['ecs']->table('order_info') . ' AS oi LEFT JOIN ' . $GLOBALS['ecs']->table('users') . ' AS u ON oi.user_id = u.user_id, ' . $GLOBALS['ecs']->table('order_goods') . ' AS og ' .

           'WHERE oi.order_id = og.order_id AND ' . time() . ' - oi.add_time < 2592000 AND og.goods_id = ' . $arr['id'];

    $count = $GLOBALS['db']->getOne($sql);





    /* 商品购买记录分页样式 */

    $pager = array();

    $pager['page']         = $page = 1;

    $pager['size']         = $size = 5;

    $pager['record_count'] = $count;

    $pager['page_count']   = $page_count = ($count > 0) ? intval(ceil($count / $size)) : 1;;

    $pager['page_first']   = "javascript:gotoBuyPage(1,$arr[id])";

    $pager['page_prev']    = $page > 1 ? "javascript:gotoBuyPage(" .($page-1). ",$arr[id])" : 'javascript:;';

    $pager['page_next']    = $page < $page_count ? 'javascript:gotoBuyPage(' .($page + 1) . ",$arr[id])" : 'javascript:;';

    $pager['page_last']    = $page < $page_count ? 'javascript:gotoBuyPage(' .$page_count. ",$arr[id])"  : 'javascript:;';



    $GLOBALS['smarty']->assign('notes', $bought_notes);

    $GLOBALS['smarty']->assign('pager', $pager);





    $val= $GLOBALS['smarty']->fetch('library/bought_notes.lbi');



    $GLOBALS['smarty']->caching = $need_cache;

    $GLOBALS['smarty']->force_compile = $need_compile;



    return $val;

}





/**

 * 调用在线调查信息

 *

 * @access  public

 * @return  string

 */

function insert_vote()

{

    $vote = get_vote();

    if (!empty($vote))

    {

        $GLOBALS['smarty']->assign('vote_id',     $vote['id']);

        $GLOBALS['smarty']->assign('vote',        $vote['content']);

    }

    $val = $GLOBALS['smarty']->fetch('library/vote.lbi');



    return $val;

}

function insert_shop_cart()

{

require_once(ROOT_PATH . 'includes/lib_order.php');
$_CFG['lang']=isset($_CFG['lang'])?$_CFG['lang']:'zh_cn';
/* 载入语言文件 */
require_once(ROOT_PATH . 'languages/' .$_CFG['lang']. '/user.php');
require_once(ROOT_PATH . 'languages/' .$_CFG['lang']. '/shopping_flow.php');


/*获取购物车信息*/
$sql = 'SELECT SUM(goods_number) AS number, SUM(goods_price * goods_number) AS amount' .
           ' FROM ' . $GLOBALS['ecs']->table('cart') .
           " WHERE session_id = '" . SESS_ID . "' AND rec_type = '" . CART_GENERAL_GOODS . "'";
    $row = $GLOBALS['db']->GetRow($sql);
    if ($row)
    {
        $number = intval($row['number']);
        $amount = floatval($row['amount']);
    }
    else
    {
        $number = 0;
        $amount = 0;
    }
	$GLOBALS['numbers']=$number;
    $amount=price_format($amount, false);
/*获取购物车信息*/	


    /* 标记购物流程为普通商品 */

    $_SESSION['flow_type'] = CART_GENERAL_GOODS;



    /* 如果是一步购物，跳到结算中心 */

    if ($_CFG['one_step_buy'] == '1')

    {

        ecs_header("Location: flow.php?step=checkout\n");

        exit;

    }



    /* 取得商品列表，计算合计 */

$cart_goods = get_cart_goods();



if(isset($cart_goods['goods_list'])&&count($cart_goods['goods_list'])>0)

{

    $shipping_money=sprintf($_LANG['shopping_money'], $cart_goods['total']['goods_price']);

$str= <<<EOT

<div>



EOT;



foreach($cart_goods['goods_list'] as $goods){

$str.=  <<<EOT

<div class="nmb">
<div class="left mrt10 thumb">
<a href="goods.php?id={$goods[goods_id]}" target="_blank"> <img src="{$goods[goods_thumb]}" border="0" title="{$goods[goods_name]}" /> </a>
</div>
<div class="info">
<p class="gt"><a href="goods.php?id={$goods[goods_id]}" target="_blank"> {$goods[goods_name]} </a></p>
<p class="tred"> X {$goods[goods_number]}</p>
<div class="price"><b class="left tleft tred">{$goods[goods_price]}</b><b class="right tright"><a onClick="cart.deleteGoods({$goods[rec_id]},this);return false;">删除 </a></b>
<div class="clear"></div>
</div>
</div>
<div class="clear"></div>
</div>

EOT;

}



$str.= <<<EOT



</div>

<div class="tright sum">

   	<p>商品总数：<b class="tred">{$number}</b></p>
    
    <p>金额合计：<b class="tred">{$amount}</b></p>
    
   <a href="flow.php" class="checkout1">结算中心</a>
   <div class="clear"></div>
    
</div>	

<script>
	document.getElementById('nums').innerHTML={$number};
</script>

EOT;

}else

{



$str= <<<EOT

<div class="message">您的购物车中暂无商品哦！</div>
<script>
	document.getElementById('nums').innerHTML={$number};
</script>

EOT;

}

return $str;

}

?>